// 修改用户请求模块

// 引入user集合规则模块
const User = require('../../model/user.js');
// 引入user集合验证方法
const { check } = require('../../model/userCheck.js');
// 引入密码加密模块
const { encrypt } = require('../../middleware/encrypt.js');

module.exports = async (req, res, next) => {
    let { id, page } = req.query;
    // 验证用户修改信息
    try {
        await check(req.body);
    } catch (error) {
        // 用户信息验证失败，返回修改用户页面，并提示
        req.body._id = id;
        return res.render('admin/user-edit', { errMessage: error.message, user: req.body, page: page });
    }
    // 用户信息验证通过，对密码加密，修改用户信息
    try {
        // 密码加密
        req.body.password = await encrypt(req.body.password);
        // 数据更新
        await User.updateOne({ _id: id }, req.body);
        // 重定向到用户管理页面
        return res.redirect('/admin/users?page=' + page);
    } catch (error) {
        next(error);
    }
    // User.updateOne({_id: id}, req.body)
}